const compiler = require('vue-template-compiler');
const fs = require('fs');
const path = require('path');

// 读取Vue文件
const filePath = path.resolve(__dirname, 'components/agency-info/agency-info.vue');
const content = fs.readFileSync(filePath, 'utf-8');

// 简单的正则表达式来提取template、script和style部分
const templateRegex = /<template>([\s\S]*?)<\/template>/;
const scriptRegex = /<script>([\s\S]*?)<\/script>/;

// 提取template内容
const templateMatch = content.match(templateRegex);
const template = templateMatch ? templateMatch[1] : '';

// 提取script内容
const scriptMatch = content.match(scriptRegex);
const script = scriptMatch ? scriptMatch[1] : '';

// 编译template
console.log('===== 检查模板语法 =====');
const compiled = compiler.compile(template);
if (compiled.errors && compiled.errors.length > 0) {
  console.error('模板语法错误:', compiled.errors);
} else {
  console.log('模板语法检查通过！');
}

// 检查script语法（简单检查是否能解析为对象）
console.log('\n===== 检查脚本语法 =====');
try {
  // 尝试解析script内容
  const scriptStart = script.indexOf('export default {');
  const scriptEnd = script.lastIndexOf('}');
  
  if (scriptStart !== -1 && scriptEnd !== -1) {
    const componentDef = script.substring(scriptStart + 15, scriptEnd).trim();
    
    // 简单检查是否有效（实际上应该用更复杂的方法，但这里只是基本验证）
    // 尝试将组件定义包装成一个函数调用，以检查语法
    new Function(`return {${componentDef}}`);
    console.log('脚本语法检查通过！');
  } else {
    console.log('找不到有效的组件定义');
  }
} catch (error) {
  console.error('脚本语法错误:', error.message);
}

console.log('\n检查完成！');